#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BslListNode {
    pub prev: *mut BslListNode,
    pub next: *mut BslListNode,
    pub data: *mut ::std::os::raw::c_void,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct BslList {
    pub first: *mut BslListNode,
    pub last: *mut BslListNode,
    pub curr: *mut BslListNode,
    pub count: i32,
    pub dataSize: i32,
}
pub const BSL_LIST_POS_BEFORE: BslListPosition = 0;
pub const BSL_LIST_POS_AFTER: BslListPosition = 1;
pub const BSL_LIST_POS_BEGIN: BslListPosition = 2;
pub const BSL_LIST_POS_END: BslListPosition = 3;
pub type BslListPosition = ::std::os::raw::c_uint;
pub type BSL_LIST_PFUNC_CMP = ::std::option::Option<
    unsafe extern "C" fn(
        arg1: *const ::std::os::raw::c_void,
        arg2: *const ::std::os::raw::c_void,
    ) -> i32,
>;
pub type BSL_LIST_PFUNC_FREE =
    ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>;
pub type BSL_LIST_PFUNC_DUP = ::std::option::Option<
    unsafe extern "C" fn(arg1: *const ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
>;
unsafe extern "C" {
    pub fn BSL_LIST_SetMaxElements(iMaxElements: i32) -> i32;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetMaxElements() -> i32;
}
unsafe extern "C" {
    pub fn BSL_LIST_AddElement(
        pList: *mut BslList,
        pData: *mut ::std::os::raw::c_void,
        enPosition: BslListPosition,
    ) -> i32;
}
unsafe extern "C" {
    pub fn BSL_LIST_DeleteAll(pList: *mut BslList, pfFreeFunc: BSL_LIST_PFUNC_FREE);
}
unsafe extern "C" {
    pub fn BSL_LIST_DeleteCurrent(pList: *mut BslList, pfFreeFunc: BSL_LIST_PFUNC_FREE);
}
unsafe extern "C" {
    pub fn BSL_LIST_DetachCurrent(pList: *mut BslList);
}
unsafe extern "C" {
    pub fn BSL_LIST_Search(
        pList: *mut BslList,
        pSearchFor: *const ::std::os::raw::c_void,
        pSearcher: BSL_LIST_PFUNC_CMP,
        pstErr: *mut i32,
    ) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetIndexNode(ulIndex: u32, pList: *mut BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_Copy(
        pSrcList: *mut BslList,
        pFuncCpy: BSL_LIST_PFUNC_DUP,
        pfFreeFunc: BSL_LIST_PFUNC_FREE,
    ) -> *mut BslList;
}
unsafe extern "C" {
    pub fn BSL_LIST_Sort(pList: *mut BslList, pfCmp: BSL_LIST_PFUNC_CMP) -> *mut BslList;
}
unsafe extern "C" {
    pub fn BSL_LIST_New(dataSize: i32) -> *mut BslList;
}
unsafe extern "C" {
    pub fn BSL_LIST_Curr(pstList: *const BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_First(pstList: *mut BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_Last(pstList: *mut BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_Next(pstList: *mut BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_Prev(pstList: *mut BslList) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetElmtIndex(elmt: *const ::std::os::raw::c_void, pstList: *mut BslList)
        -> i32;
}
unsafe extern "C" {
    pub fn BSL_LIST_Concat(pDestList: *mut BslList, pSrcList: *const BslList) -> *mut BslList;
}
unsafe extern "C" {
    pub fn BSL_LIST_FreeWithoutData(pstList: *mut BslList);
}
unsafe extern "C" {
    pub fn BSL_LIST_RevList(pstList: *mut BslList);
}
unsafe extern "C" {
    pub fn BSL_LIST_SetMaxQsortCount(uiQsortSize: u32) -> i32;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetMaxQsortCount() -> u32;
}
unsafe extern "C" {
    pub fn BSL_LIST_DeleteAllAfterSort(pList: *mut BslList);
}
unsafe extern "C" {
    pub fn BSL_LIST_FirstNode(list: *const BslList) -> *mut BslListNode;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetData(pstNode: *const BslListNode) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetNextNode(
        pstList: *const BslList,
        pstListNode: *const BslListNode,
    ) -> *mut BslListNode;
}
unsafe extern "C" {
    pub fn BSL_LIST_GetPrevNode(pstListNode: *const BslListNode) -> *mut BslListNode;
}
unsafe extern "C" {
    pub fn BSL_LIST_DeleteNode(
        pstList: *mut BslList,
        pstListNode: *const BslListNode,
        pfFreeFunc: BSL_LIST_PFUNC_FREE,
    );
}
unsafe extern "C" {
    pub fn BSL_LIST_DetachNode(pstList: *mut BslList, pstListNode: *mut *mut BslListNode);
}